1. Field of the Invention
This invention relates in general to automatic configuration of the interface subsystems residing in a host computer system. In particular, this invention relates to automatic configuration of interface subsystems residing in a host computer already populated with other peripheral interface subsystems. More particularly, this invention relates to the automatic configuration of multiple subsystems of the same type residing in a host computer system.
2. Technical Background
As the semiconductor technology evolves, functionality of the microprocessor-based personal computer systems is progressing rapidly, with the constant trend toward reduced cost both in hardware and software, which in turn is resulting in the wide-spread use of computer systems in virtually every aspect of our daily life.
Local area network (LAN) technology is one of the areas that benefits from the reduced cost and increased performance of personal computers. Host and server computer systems for networks based on high-end personal computers have been spreading and are now practically dominating the LAN arena.
In a typical local area network system, in addition to the original workstations and/or terminals installed during the set up stage of the network system, additional workstations and/or terminals are eventually added into the network system as the necessities arise. Generally, when a stand-alone personal computer is to be attached to a network, it appears to be as straightforward as inserting an appropriate network interface adapter in the expansion slot of the personal computer and connecting the required cabling to physically hook the computer to the network.
However, in addition to the obvious requirements of adding in the host computer the network subsystem, which usually is a network interface adapter, and making the physical connections via cables, the frequently more tedious tasks involved in adding a new workstation and/or terminal to a network, in the case of the Industry Standard Architecture (ISA) computer systems, is the proper configuration of both the personal computer and the adapter itself. The newly added network interface adapter must coexist seamlessly with the existing components in the particular personal computer system, such as the display interface subsystem, the hard disk drive controller subsystem, and any other I/O subsystems that may have already been installed in the expansion bus of the personal computer in consideration.
On the other hand, once the particular personal computer to be added to the network system is self-consistent in terms of all its subsystems, including the newly added network interface, the computer must be consistent with all other personal computers already residing in the network and playing the role as a network workstation or terminal. In this respect, the newly added computer must not have its identity, as a network workstation or terminal, conflict with any other computers already in the network.
Configuring a new interface adapter subsystem to be added to an existing computer is frequently a tedious and painstaking task, even for persons skilled in this art. All interface subsystems to reside on the expansion bus of a computer must each occupy an independent input/output address area to function properly. For most computer users, such task of adjusting I/O address ranges for an interface adapter is barely possible. Adding interface adapters to a computer often means seeking professional assistance, even for persons skilled in configuring computers, the task is time consuming, principally because trial and error schemes have to be taken to install the piece of added hardware, and verification of the functionality of the entire system has to be secured.
Conventional interface adapters for computers, typified by the ISA computer interface adapters, have been employing mechanical jump-wire means to configure the proper address range, interrupt request lines, and other necessary options, so that a new interface adapter can be successfully accepted by a computer system, and the entire system can function properly. To configure such mechanical jumpers, the computer must have its power source shut down, the power cable removed, and the interface adapter removed from the expansion slot before it can be configured. If the host computer has had complicated interface adapters installed, chances are that more than one try of the configuration is necessary, making the configuration tedious and troublesome.
To simplify the complicated configuration task for added interface subsystem to a computer, interface adapters with automatic configuration capability have been designed. In such devices, no mechanical jumpers are required to configure the device. Testing software routines reside on the device to automatically find a set of configuration parameters that allow the device to successfully coexist with other interface subsystems residing in the host computer.
For example, jumperless network interface adapters are constructed that can automatically execute an on-board software routine to seek through the I/O address space of a host computer, and try to allocate for themselves address space that is not occupied by any other interface device already present in the host computer. The host computer can access the signature information residing inside the device once the automatic seeking routine has found available address space for the device. Such automatic configuration network interface adapters, however, have a major drawback that when two or more of the same network interface adapters are added to the same host computer, the same software algorithm residing on all the adapters will reach the same seeking result, making the multiple of the same type of adapters conflict with each other. The only feasible way to install such multiple adapters having the same automatic configuration software routines, is to install one first, and after the first has configured itself successfully, the second adapter can then be installed to repeat the whole process again. Such process is still considered inconvenient, because the same automatic configuration task will have to be performed more than once.